/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.adsi.logica;

import com.adsi.modelo.Usuarios;
import com.adsi.persistencia.IUsuariosDAO;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;

/**
 *
 * @author Estudiante
 */
@Stateless
public class LogicaUsuarios implements LogicaUsuariosLocal {

    @EJB
    private IUsuariosDAO usuarioDAO;

    // Add business logic below. (Right-click in editor and choose
    // "Insert Code > Add Business Method")
    @Override
    public void registrarUsuario(Usuarios usuario) throws Exception {
        Usuarios objUser = usuarioDAO.consultarPorCedula(usuario.getUsuCedula());

        if (objUser != null) {
            throw new Exception("El Usuario Ya Se Encuentra Registrado");
        }
        if (usuario.getUsuCedula() == null) {
            throw new Exception("No Ha Ingresado El Documento Del Usuario");
        }
        if (usuario.getUsuNombre() == null) {
            throw new Exception("No Ha Ingresado El Nombre Del Usuario");
        }
        if (usuario.getUsuLogin() == null) {
            throw new Exception("No ha ingresado el Login");
        }
        if (usuario.getUsuClave() == null) {
            throw new Exception("No ha ingresado la clave");
        }
        usuarioDAO.registrarUsuario(usuario);

    }

    @Override
    public void modificarUsuario(Usuarios usuario) throws Exception {
        Usuarios objUser = usuarioDAO.consultarPorCedula(usuario.getUsuCedula());

        if (objUser == null) {

            throw new Exception("El Usuario No Se Encuentra Registrado");

        }
        if (usuario.getUsuCedula() == null) {
            throw new Exception("No Ha Ingresado El Documento Del Usuario");
        }
        if (usuario.getUsuNombre() == null) {
            throw new Exception("No Ha Ingresado El Nombre Del Usuario");
        }
        if (usuario.getUsuLogin() == null) {
            throw new Exception("No ha ingresado el Login");
        }
        if (usuario.getUsuClave() == null) {
            throw new Exception("No ha ingresado la clave");
        }
        usuarioDAO.modificarUsuario(objUser);
    }

    @Override
    public void eliminarUsuario(Usuarios usuario) throws Exception {

        Usuarios objUser = usuarioDAO.consultarPorCedula(usuario.getUsuCedula());

        if (objUser == null) {

            throw new Exception("El Usuario No Se Encuentra Registrado");

        }
        usuarioDAO.eliminarUsuario(objUser);
    }

    @Override
    public List<Usuarios> consultarUsuarios() throws Exception {
        return usuarioDAO.consultarUsuarios();
    }

    @Override
    public Usuarios consultarPorCedula(Long cedula) throws Exception {
        if (cedula == null) {
            throw new Exception("No ingresaste el número de Identificación.");
        }
        return usuarioDAO.consultarPorCedula(cedula);

    }
}
